<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

    <title>葡萄藤PPT</title>
    <link rel="stylesheet" href="../css/reveal/reveal.css">

    <!-- PPT主题，可以在/css/reveal/theme/中选择其他主题，目前暂时只能使用该模板 -->
    <link rel="stylesheet" href="../css/reveal/theme/ptt.css">

    <!-- syntax highlighting 代码高亮主题 -->
    <link rel="stylesheet" href="../lib/reveal/css/zenburn.css">

    <!-- 打印和PDF输出样式 -->
    <script>
        var link = document.createElement( 'link' );
        link.rel = 'stylesheet';
        link.type = 'text/css';
        link.href = window.location.search.match( /print-pdf/gi ) ? '../css/reveal/print/pdf.css' : '../css/reveal/print/paper.css';
        document.getElementsByTagName( 'head' )[0].appendChild( link );
    </script>
</head>
<body>
<img src="../img/demo/logo.png" alt="" usemap="#pttmap" class="base-logo">
<map name="pttmap">
    <area shape="rect" coords="0,0,276,58" href="http://www.jnshu.com" alt="" target="_blank"/>
</map>
<div class="reveal">
    <div class="slides">
        <section>
            <h2>【JS02】函数表达式和函数声明有什么区别？</h2>
            <p>分享人：汤镇铭</p>
        </section>
        <section>
            <p>目录</p>
            <p>1.背景介绍</p>
            <p>2.知识剖析</p>
            <p>3.常见问题</p>
            <p>4.解决方案</p>
            <p>5.编码实战</p>
            <p>6.扩展思考</p>
            <p>7.参考文献</p>
            <p>8.更多讨论</p>
        </section>
        <section>
            <h3>1.背景介绍</h3>
        </section>
        <section>
            <p style="text-align: left;">
            	我们都知道函数使用FUNCTION关键字来定义，它可以用在函数定义表达式或者函数声明语句中。在这两种形式中，函数定义都从FUNCTION关键字开始。<br>
            	而关于这两者之间的区别，我们似乎很少去研究，所以这次我们就一起在小课堂中学习一下吧。
            </p>
        </section>

        <section>
            <h3>2.知识剖析</h3>
        </section>
        <section>
        	<h4>什么是函数声明？</h4>
            <p style="text-align: left;">
                1、函数声明语句的语法：知识剖析中 DEMO1 讲解演示。<br>
                2、<br>（1）以FUNCTION关键字定义。<br>（2）接下来是要声明的函数的名称的标识符。<br>（3）函数名之后的圆括号中是参数列表，有多个参数的话参数之间使用逗号分隔。<br>（4）函数体由JAVASCRIPT语句组成，数量不限，使用花括号包裹。<br>
                3、当调用函数时，这些标识符则指代传入函数的实参。
            </p>
        </section>
        <section>
        	<h4>什么是函数表达式？</h4>
            <p style="text-align: left;">
                1、函数表达式：知识剖析中 DEMO2 讲解演示。<br>
                2、函数定义表达式定义了一个JAVASCRIPT函数，表达式的值是这个新定义的函数。<br>3、一个典型的函数定义表达式包含关键字FUNCTION，跟随其后的是一对圆括号，括号内定义形参以逗号分割，然后跟随一个花括号包裹的函数体。<br>
                3、函数直接量。
            </p>
        </section>
        <section>
            <h4>函数声明</h4>
            <p>DEMO1</p>
            <h4>函数表达式</h4>
            <p>DEMO2</p>
        </section>
        <section>
            <h3>3.常见问题</h3>
        </section>
        <section>
            <p>函数声明与函数表达式使用了相同的函数名之后是否相同？</p>
            <p>函数声明与函数表达式有什么区别？</p>
        </section>
        <section>
            <h3>4.解决方案</h3>
        </section>
        <section>
        	<p>1、函数声明中函数名是必须的；函数表达式中则是可选的。</p>
			<p style="text-align: left;">2、即使函数声明语句和函数定义表达式包含相同的函数名，二者依然是不同的。</p>
			<p style="text-align: left;">3、使用函数表达式的话，只有变量声明提升了——变量的初始化代码仍然在原来的位置。</p>
			<p style="text-align: left;">4、使用函数声明的话，函数名称和函数体都提升了，脚本中所有函数和函数中所有嵌套的函数都会在当前上下文中其他代码之前声明。也就是说，可以在函数声明之前调用它。</p>
        </section>

        <section>
            <h3>5.编码实战</h3>
            <p>DEMO3 讲解演示</p>
        </section>
        <section>
            <h3>6.扩展思考</h3>
        </section>
        <section>
            <p>作用域与作用域链、闭包、高阶函数</p>
        </section>
        <section>
            <h3>7.参考文献</h3>
            <p style="text-align: left;">1、《JAVASCRIPT权威指南》</p>
            <p style="text-align: left;">2、<a href="https://www.cnblogs.com/yuzhongwusan/archive/2012/01/30/2331693.html">函数：声明和表达式</a></p>
            <p style="text-align: left;">3、<a href="http://www.cnblogs.com/feile/p/5325125.html">函数——函数的两种声明方式：函数声明&函数表达式的区别</a></p>
        </section>
		<section>
            <h3>8.更多讨论</h3>
        </section>
        <section>
            <h4>鸣谢</h4>
            <p>感谢大家观看</p>
        </section>
    </div>
</div>

<script src="../lib/reveal/js/head.min.js"></script>
<script src="../lib/reveal/reveal.js"></script>

<script>
    // 以下为常见配置属性的默认值
    // {
    // 	controls: true, // 是否在右下角展示控制条
    // 	progress: true, // 是否显示演示的进度条
    // 	slideNumber: false, // 是否显示当前幻灯片的页数编号，也可以使用代码slideNumber: 'c / t' ，表示当前页/总页数。
    // 	history: false, // 是否将每个幻灯片改变加入到浏览器的历史记录中去
    // 	keyboard: true, // 是否启用键盘快捷键来导航
    // 	overview: true, // 是否启用幻灯片的概览模式，可使用"Esc"或"o"键来切换概览模式
    // 	center: true, // 是否将幻灯片垂直居中
    // 	touch: true, // 是否在触屏设备上启用触摸滑动切换
    // 	loop: false, // 是否循环演示
    // 	rtl: false, // 是否将演示的方向变成RTL，即从右往左
    // 	fragments: true, // 全局开启和关闭碎片。
    // 	autoSlide: 0, // 两个幻灯片之间自动切换的时间间隔（毫秒），当设置成 0 的时候则禁止自动切换，该值可以被幻灯片上的 ` data-autoslide` 属性覆盖
    // 	transition: 'default', // 切换过渡效果，有none/fade/slide/convex/concave/zoom
    // 	transitionSpeed: 'default', // 过渡速度，default/fast/slow
    // 	mouseWheel: true, //是否启用通过鼠标滚轮来切换幻灯片
    // }
    // 初始化幻灯片
    Reveal.initialize({
        history: true,
        dependencies: [
            { src: '../plugin/markdown/marked.js' },
            { src: '../plugin/markdown/markdown.js' },
            { src: '../plugin/notes/notes.js', async: true },
            { src: '../plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
        ]
    });
</script>
</body>
</html>
Contact GitHub API Training Shop Blog About
© 2016 GitHub, Inc. Terms Privacy Security Status He
